5
תגובות
אני מנסה להכין ביטוי רגולרי בשתי חלקים:
חלק ראשון יכול להכיל כל תו והחלק השני יכול להכיל כל תו חוץ מ*(כוכבית)
דוגמאות:
מקווה שהבנתם אותי, קשה לי להסביר.
חלק ראשון יכול להכיל כל תו והחלק השני יכול להכיל כל תו חוץ מ*(כוכבית)
דוגמאות:
<?php
function phpguide_help($part1, $part2){
return preg_match("/??????/", "{$part1}{$part2}");
}
phpguide_help("ergjnjkle", "aregk34"); //need true
phpguide_help("!*gj*jkle", "aregk34"); //need true
phpguide_help("e*gjnjk*e", "are*k34"); //need false (part2 heve *)
phpguide_help("", ""); //need true
//my test, but i cant know what to do.........
function phpguide_help_my_test($part1, $part2){
return preg_match("/^{$part1}[%PROBLEM_HERE%]$/", "{$part1}{$part2}"); //<-- [%PROBLEM_HERE%]
}
function phpguide_help($part1, $part2){
return preg_match("/??????/", "{$part1}{$part2}");
}
phpguide_help("ergjnjkle", "aregk34"); //need true
phpguide_help("!*gj*jkle", "aregk34"); //need true
phpguide_help("e*gjnjk*e", "are*k34"); //need false (part2 heve *)
phpguide_help("", ""); //need true
//my test, but i cant know what to do.........
function phpguide_help_my_test($part1, $part2){
return preg_match("/^{$part1}[%PROBLEM_HERE%]$/", "{$part1}{$part2}"); //<-- [%PROBLEM_HERE%]
}
מקווה שהבנתם אותי, קשה לי להסביר.
5 תשובות
ענה
משתמש_218762
ב
23 למאי 2012
#
חשבתי על זה קצת יותר, וזה צריך להיות ככה:
$array = array(
'foo*bar*mmf',
'foo*bar*mmf*clo',
'foo*bar*mmf*mnm',
'foo*bar*mmf*clo*ff',
'foo*bar*mmf*clo*bby',
'foo*bar*mmf*mnm*free',
'foo*bar*mmf*mnm*size',
);
function phpguide_help($str, $startRegex){
return preg_match("/^{$startRegex}[HERE]$/", $str); //[HERE] = Any but *
}
foreach($array as $str){
if(phpguide_help($str, "foo*bar*mmf*")){
echo ":{$str}\n";
}
}
/*
need to print:
:foo*bar*mmf*clo
:foo*bar*mmf*mnm
*/
'foo*bar*mmf',
'foo*bar*mmf*clo',
'foo*bar*mmf*mnm',
'foo*bar*mmf*clo*ff',
'foo*bar*mmf*clo*bby',
'foo*bar*mmf*mnm*free',
'foo*bar*mmf*mnm*size',
);
function phpguide_help($str, $startRegex){
return preg_match("/^{$startRegex}[HERE]$/", $str); //[HERE] = Any but *
}
foreach($array as $str){
if(phpguide_help($str, "foo*bar*mmf*")){
echo ":{$str}\n";
}
}
/*
need to print:
:foo*bar*mmf*clo
:foo*bar*mmf*mnm
*/
אבל זה עדיין לא פותר ת'בעיה :\
ענה
משתמש_219212
ב
23 למאי 2012
#
ענה
משתמש_220998
ב
23 למאי 2012
#
הביטוי הרגולרי לא יודע להבדיל איפה נגמר החלק הראשון ואיפה מתחיל השני.
או שאתה מכניס איזה הפרדה ביניהם או שאתה עושה שני ביטויים רגולריים (וגם אז ייצא שהביטוי הראשון מיותר. למה לבדוק כל תו אם גם ככה מותר הכל).
את הביטוי השני עידן כתב למעלה.
ענה
משתמש_218762
ב
23 למאי 2012
#
@iiddaannyy
תודה!
@משתמש_220998
מצאתי דרך יותר טובה לעשות את זה (הוספתי מפתוחת למערך ושינתי כמה פונקציות), תודה.